In a computer system, a plurality of devices such as computer processors, memories, communication devices, etc. are typically coupled together via a common bus. As more devices are added to the bus, the efficiency of the entire system depends on the speed at which transactions between devices take place on the bus. A typical series of bus transactions occurs between a master processing device and a slave memory device. In this series of transactions, the master will transmit a request, via the bus, to all of the other devices coupled to the bus. It is up to the slave to determine whether or not it has been selected by the master. The selected slave will then send an acknowledgement to the master, thus establishing communication between the two devices.
Next, data is transferred between the master and slave according to the original request. Finally, the master terminates the transaction with the slave and releases the bus.
A short turnaround time delay between the master's request and the slave's response is important for efficient bus performance. This is achieved with a quick bus interface controller placed between the processors and the network bus. If the network bus is asynchronous, it is advantageous to make the interface side of the controller asynchronous to take full advantage of the speed afforded by the asynchronous bus. In an asynchronous bus protocol that utilizes a plurality of handshaking signals between a master and a slave to affect bus transactions, a large asynchronous or synchronous state machine may be required to detect and generate the appropriate handshaking signals. A large asynchronous state machine is often too complex to design for many computer systems. A large synchronous state machine is very slow and will not provide an acceptable turnaround speed.
There is a need for an asynchronous bus interface controller that can accommodate a plurality of handshaking signals and which operates with a quick turnaround time. There is also a need for an asynchronous bus interface controller that is easily adaptable to different devices coupled to a standardized network bus. Furthermore, there is a need for a bus interface that handles both slave and master handshaking signals on an asynchronous bus.